
#pragma once
#include "LPCSTRArray.h"

class CVerArray :public CLPCSTRArray
{
public:
	CVerArray(LPCSTR ver = nullptr) { set(ver); }
	bool set(LPCSTR ver);
	bool equal(intptr_t ver0, intptr_t ver1, intptr_t ver2, intptr_t ver3);
	bool greatThan(intptr_t ver0, intptr_t ver1, intptr_t ver2, intptr_t ver3);
	bool lessThan(intptr_t ver0, intptr_t ver1, intptr_t ver2, intptr_t ver3);
	bool greatEqual(intptr_t ver0, intptr_t ver1, intptr_t ver2, intptr_t ver3);
	bool lessEqual(intptr_t ver0, intptr_t ver1, intptr_t ver2, intptr_t ver3);
	__forceinline bool equal(const CVerArray&v){ return equal(v.nVer[0], v.nVer[1], v.nVer[2], v.nVer[3]); }
	__forceinline bool greatThan(const CVerArray&v){ return greatThan(v.nVer[0], v.nVer[1], v.nVer[2], v.nVer[3]); }
	__forceinline bool lessThan(const CVerArray&v){ return lessThan(v.nVer[0], v.nVer[1], v.nVer[2], v.nVer[3]); }
	__forceinline bool greatEqual(const CVerArray&v){ return greatEqual(v.nVer[0], v.nVer[1], v.nVer[2], v.nVer[3]); }
	__forceinline bool lessEqual(const CVerArray&v){ return lessEqual(v.nVer[0], v.nVer[1], v.nVer[2], v.nVer[3]); }
protected:
	bool isValid;
	intptr_t nVer[4];
};
